package com.zhou.result;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @Description : 公共返回类
 * @Author : zyy
 * @Date: 2024/6/13  11:46
 */
@Data
@NoArgsConstructor //构造无参
@AllArgsConstructor //构造有参
public class R<T> implements Serializable {
    //状态码
    private Integer code;
    //信息
    private String message;
    //数据
    private T data;

    public static <T>R<T> success(){
        return new R();
    }
    public static <T>R<T> success(String msg,Object data){
        return new R(200,msg,data);
    }
    //成功 返回数据
    public static <T>R<T> success(Object data){
        return new R(200,"成功",data);
    }
    //失败 返回空
    public static <T>R<T> error(Object data){
        return new R(500,"失败",data);
    }
    //成功 返回成功信息
    public static <T>R<T> success(String msg){
        return new R(200,msg,null);
    }
    //失败 返回失败信息
    public static <T>R<T> error(String msg){
        return new R(500,msg,null);
    }
}
